#region Test Classes
using MvpFramework;
using MvpFramework.Specifications;
using TestNameSpace.View;

namespace TestNameSpace.View
{
    public interface ITestView : IMvpView { }
    public class TestView : ITestView
    {
        #region IInitialLoadView Members

        public bool IsInitialLoad { get { return false; } }

        #endregion

        public void NavigateTo(string location)
        {
            // do nothing
        }
    }
    public interface IBadlyNamed { }
    public class BadlyNamed : IBadlyNamed { }
    public interface INotQuiteView { }
    public class NotQuiteView : INotQuiteView { }
    public interface ISomethingThatHasAFailedSpecView : IValidatedView { }
    public interface ISomethingThatHasAPassedSpecView : IValidatedView { }
}

namespace TestNameSpace.Presenter
{

    public class TestPresenter
    {
        public TestPresenter(ITestView view)
        {
        }
    }

    public class NotQuite
    {
        public NotQuite(INotQuiteView view)
        {
        }
    }
}

namespace TestNameSpace.Specifications
{
    public class SpecThatAllwaysFails : Specification<ISomethingThatHasAFailedSpecView>
    {
        public override bool IsSatisfiedBy(ISomethingThatHasAFailedSpecView obj)
        {
            return false;
        }
    }
    public class SpecThatAllwaysPasses : Specification<ISomethingThatHasAPassedSpecView>
    {
        public override bool IsSatisfiedBy(ISomethingThatHasAPassedSpecView obj)
        {
            return true;
        }
    }
}
#endregion